/**
 * 参数统一封装
 * **/

// 用于非对称是加密的MD5封装
import MD5 from 'md5-node';

// token传递的header名称
export const TOKEN_HEADER_NAME = 'Authorization';

// token本地存储名称
export const TOKEN_STORE_NAME = 'token';

// 是否开始缓存界面
export const CACHE = ['Home', 'classification', 'forminfo', 'personalCenter'];

// 非对称加密(需要注意的是Formdata的类型的参数还未处理)等我下一个版本
export function FDKMDINFO(value) {
  const KEY = '1^)(^*^$$#$%!@#$!@#$%';
  let url = value.url ? value.url.split('?')[1] : '';
  let Listinfo = [];
  let MDduixiang = {
    string: '',
  };

  Listinfo.push(url + (Object.keys(value.data).length > 0 ? '&' : ''));

  for (let k in value.data) {
    Listinfo.push(k + '=' + value.data[k] + '&');
  }
  Listinfo.push('key' + '=' + KEY + '&');
  MDduixiang.string = Listinfo.sort().join('');
  if (MDduixiang.string.substring(MDduixiang.string.length - 1) == '&') {
    MDduixiang = Object.assign({}, MDduixiang, {
      string: MDduixiang.string.substring(MDduixiang.string.length - 1, 1).replace('&', ''),
    });
  }
  return MD5(MDduixiang.string).toUpperCase();
}
